/**
 * @Project Name: ${projectName}
 * @Package Name: ${projectPackageName}.infrastructure.service.${domainName}
 * @Since JDK 1.8
 */
package ${projectPackageName}.infrastructure.service.${domainName};

import cn.com.scgeling.framework.pagination.domain.ConditionAndPagination;
import cn.com.scgeling.framework.pagination.domain.Pagination;
import ${projectPackageName}.domain.dto.${domainName}.${className}DTO;
import ${projectPackageName}.infrastructure.model.${domainName}.${className}PO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @Description: ${className}Service
 * @Author 胡松 hoofungson@163.com
 * @Date ${datetime}
 * @Version V1.0
 */
public interface ${className}Service extends IService<${className}PO> {

    /**
    * 保存或更新
    *
    * @param ${lowerCaseClassName}DTO
    **/
    void saveOrUpdate(${className}DTO ${lowerCaseClassName}DTO);

    /**
    * 批量保存或更新
    *
    * @param ${lowerCaseClassName}DTOList
    **/
    void batchSaveOrUpdate(List<${className}DTO> ${lowerCaseClassName}DTOList);

    /**
    * 根据ID获取
    *
    * @param id
    * @return
    **/
    ${className}DTO getById(Long id);

    /**
    * 根据条件获取
    *
    * @param condition
    * @return
    **/
    ${className}DTO getByCondition(${className}DTO condition);

    /**
    * 获取所有列表
    *
    * @return
    **/
    List<${className}DTO> listAll();

     /**
     * 根据条件获取列表
     *
     * @param ${lowerCaseClassName}DTO
     * @return
     **/
     List<${className}DTO> findByCondition(${className}DTO ${lowerCaseClassName}DTO);

      /**
      * 获取分页
      *
      * @param conditionAndPagination
      * @return
      **/
      Pagination<${className}DTO> page(ConditionAndPagination<${className}DTO> conditionAndPagination);

     /**
     * 根据ID删除
     *
     * @param id
     **/
     void deleteById(Long id);

     /**
     * 条件删除
     *
     * @param condition
     **/
     void deleteByCondition(${className}DTO condition);
}